package dao;

import java.util.List;

import domain.Account;

/**
 * 账目Dao接口类.
 * <p>
 * 创建日期：2010-07-01<br>
 * 创建人：Xiyt<br>
 * 修改日期：<br>
 * 修改人：<br>
 * 修改内容：<br>
 * 
 * @author Xiyt
 * @version 1.0
 */
public interface AccountDAO {
	/**
     * 根据主键查询对象
     * @param account 对象
     * @author xiyt
     */
	Account selectByPrimaryKey(int id);
    
    /**
     * 根据条件查询对象列表
     * @param account 对象
     * @author xiyt
     */
    List<Account> selectByCriteria(Account account);
    
    /**
     * 根据条件查询对象列表
     * @param account 对象
     * @param start 开始行号
     * @param limit 每次查询行数
     * @author xiyt
     */
    List<Account> selectByCriteriaForPaging(Account account, int start, int limit);
    
    /**
     * 根据条件查询对象个数
     * @param account 查询条件对象
     * @author xiyt
     */
    int countByCriteria(Account account);

    /**
     * 插入对象
     * @param account 对象
     * @author xiyt
     */
    void insert(Account account);

    /**
     * 根据条件更新对象
     * @param account 对象
     * @author xiyt
     */
    int updateByPrimaryKey(Account account);
    
    /**
     * 根据条件删除对象个数
     * @param account 查询条件对象
     * @author xiyt
     */
    int deleteByPrimaryKey(int id);
    
    /**
     * 查询总合计值
     * @param account 查询条件对象
     * @author xiyt
     */
    double selectSumByCriteria(Account account);
    
    /**
     * 分组查询收入合计或支出合计
     * @param account 查询条件对象
     * @author xiyt
     */
    List<Account> selectGroupSumByCriteria(Account account);
}